.s-image {
  position: relative;
  display: inline-block;
  overflow: hidden;

  &__wrap {
    overflow: hidden;
    width: 100%;
    height: 100%;
  }

  &__img {
    display: block;
    width: 100%;
    height: 100%;
    transition-timing-function: ease-in-out;
    transition-property: opacity;
  }

  &__loading,
  &__error {
    font-size: $image-placeholder-font-size;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: $image-placeholder-text-color;
    background: $image-placeholder-background;
  }

  ::v-deep#{&} {
    &__loading-icon {
      font-size: $image-loading-icon-size;
      color: $image-loading-icon-color;
    }

    &__error-icon {
      font-size: $image-error-icon-size;
      color: $image-error-icon-color;
    }
  }

  &--round {
    border-radius: 50%;
  }
}